using System;
using System.Collections;
using System.Text;
using Reflector;
using Reflector.Framework;
using System.Reflection;

namespace ReflectorDouble
{
    public class ReflectorPackage : PackageBase
    {

        [ReflectorWindow(Image = "page_edit.png", Caption = "Recording Generator"), ReflectorCommandBar(CommandBarTarget.Type)]
        private MainView RecorderGenerator;

        [ReflectorWindow(Image = "page_edit.png", Caption = "Many Recordings Generator"), ReflectorCommandBar(CommandBarTarget.Assembly)]
        private MainView ManyRecordersGenerator;

        [ReflectorWindow(Image = "page_edit.png", Caption = "Wrapper/Interface Generator"), ReflectorCommandBar(CommandBarTarget.Type)]
        private MainView InterapperGenerator;

        [ReflectorWindow(Image = "page_edit.png", Caption = "Test Generator"), ReflectorCommandBar(CommandBarTarget.Type)]
        private MainView TestGenerator;

        [ReflectorWindow(Image = "page_edit.png", Caption = "Fake Generator"), ReflectorCommandBar(CommandBarTarget.Type)]
        private MainView FakeGenerator;

        [ReflectorWindow(Image = "icon_link.gif", Caption = "Call Graph"), ReflectorCommandBar(CommandBarTarget.Type), ReflectorCommandBar(CommandBarTarget.Property), ReflectorCommandBar(CommandBarTarget.Method)]
        private CallGraphView CallGraph;

        public ReflectorPackage()
        {
            this.RecorderGenerator = new MainView(typeof(Doubler.Templates.Recorder.RecorderTemplate));
            this.ManyRecordersGenerator = new MainView(typeof(Doubler.Templates.Recorder.ManyRecordersTemplate));
            this.InterapperGenerator = new MainView(typeof(Doubler.Templates.Interapper.InterapperTemplate));
            this.TestGenerator = new MainView(typeof(Doubler.Templates.UnitTest.TestTemplate));
            this.FakeGenerator = new MainView(typeof(Doubler.Templates.Fake.FakeTemplate));
            this.CallGraph = new CallGraphView();
        }

    }
}
